Most musical cultures that use a notational system possess a complex set of conventions and rules governing the choice and visual arrangement of symbols in that system. Some of these rules concern how musical meaning is represented by the choice and placement of the symbols; other conventions are more visual and typographical in nature and dictate how a well-formed notational document should or should not appear, to maximize clarity, uniformity, and readability.
FIG. 1 is an excerpt from a typical example of conventionally notated Western music, a print edition of a Beethoven sonatina. It illustrates some of the common units of organization in music notation and their key visual relationships.
The musical piece shown in FIG. 1 is to be read from left to right, and from top to bottom. This direction represents the flow of metric time of the musical piece. Each horizontal run or block of music 101 that is organized in a left-to-right fashion is herein referred to as a “system.” Conventionally, a system 101 extends the entire width of the page and is horizontally divided into discrete measures 102. A measure, as understood by one possessing skill in the art, is a metrical unit of organization within many forms of music. Each system 101 is also vertically subdivided into one or more staves 103, where each staff represents an individual voice or instrumental part. A measure thus intersects a portion of each staff in the system in which it occurs. A measure's constituent symbols such as symbols 104 are, by convention, positioned such that any set of symbols representing musical events with simultaneous onset times 105 are in vertical alignment. In such a scenario where two or more symbols represent musical events having simultaneous onset times, this is herein referred to as “temporal simultaneity.” A large number of other complex conventions also govern the relative and absolute positioning of musical symbols. Such conventions are well known in the art and therefore need not be described in further detail herein. Furthermore, such conventions are dictated by the particular paradigms or systems of musical notation. Western notation, as discussed herein, is only one of a wide variety of such systems.
While the underlying musical meaning of notation is generally understood by composers and performers, the positional and typographical details of well-formed music notation are difficult to grasp and to manually execute, due to their complexity and obscurity. It is thus very useful for creators of musical documents to employ a software application to automatically place and render the musical symbols in the document, and to interactively edit the document in such a fashion that the placement and rendering of the symbols are updated immediately and automatically following each change to the particular notes, note durations or rhythms, number of measures, number of staves, and the like. Such computer applications are commonly known as music notation editors. They are analogous to a word processing application in that both deal with positioning and rendering a large number of glyphs in conjunction with interactive editing. In the context of music notation, however, the need for such an automated program is even greater, due to the positional complexity and non-linearity of musical notation, as well as the importance of appropriate positioning and rendering of symbols. Reflecting temporal simultaneity in notated music is a challenge of particular importance within this landscape.
Computer software for creating and processing music notation has existed for several decades. However, current notation editors often suffer from at least one of several key shortcomings.
Algorithms for automatically arranging and displaying musical symbols are often computationally expensive, meaning they tend to occupy a large amount of an operating machine's CPU. Consequently, the software or application running such algorithms must be optimized for a particular operating system or hardware platform in order to maximize speed. Thus, native applications running such algorithms are ill-suited for operation in a lightweight environment such as a virtual machine runtime or web browser. Computation in the abovementioned environments is slower and a complex algorithm negatively impacts the responsiveness of the program's user interface.
In addition, many approaches for the automatic arrangement of musical symbols require recalculation of large portions of the music's layout, even after a small change is made. In many instances, a minor notational adjustment to a single measure can initiate the recalculation of an entire page or pages of surrounding music. This results in similar runtime-related drawbacks as those mentioned above, which more directly affect music editing as opposed to music rendering alone.
Further, the extreme complexity of music layout results in many existing programs exhibiting limitations and errors in their rendering of conventional music notation. Such programs can either altogether fail to render musical symbols in a musically logical and correct manner, or can fail to place such symbols in locations that are convenient and appropriate for viewing or reading.